package square;
import javax.sound.sampled.*;
import java.io.File;
import java.io.IOException;
public class AudioPlayer {
    private Clip clip;//用于存储音频
    public void play(String filePath) {
        try {
            File file = new File(filePath);//创建一个File对象表示音频文件
            AudioInputStream audioStream = AudioSystem.getAudioInputStream(file);//获取音频输入流
            AudioFormat format = audioStream.getFormat();//获取音频格式
            DataLine.Info info = new DataLine.Info(Clip.class, format);//创建一个DataLine.Info对象，指定要获取的音频类型和音频格式
            clip = (Clip) AudioSystem.getLine(info);//从音频系统中获取音频
            clip.open(audioStream);//打开音频剪辑，准备播放
            clip.start();//开始播放音频方法
        }catch (UnsupportedAudioFileException|IOException|LineUnavailableException e){
            e.printStackTrace();
        }
    }
    public void loop(String filePath) {
        play(filePath);//先播放一次音频
        clip.loop(Clip.LOOP_CONTINUOUSLY);//设置音频剪辑循环播放
    }
    //停止播放音频
    public void stop() {
        //如果音频 存在且正在播放
        if (clip != null&&clip.isRunning()) {
            clip.stop();
        }
    }
    public void start(){
        if (!clip.isRunning()) {
            clip.start();
        }
    }
}